ํ๋ ฅ์ ์ธ ์๋ฐ์คํฌ๋ฆฝํธ ๋ณดํธ ์ธํ๋ผ ๊ตฌ์ถ์ ์ํ ์ข ํฉ ๊ฐ์ด๋์ ๋๋ค. ์ฝ๋ ๋๋ ํ, ๋ณ์กฐ ๋ฐฉ์ง, DOM ๋ณดํธ ๋ฐ ํด๋ผ์ด์ธํธ ์ธก ๋ณด์์ ๋ํด ์์๋ณด์ธ์.
ํ๋ ฅ์ ์ธ ์น ๋ณด์ ํ๋ ์์ํฌ ๊ตฌ์ถ: ์๋ฐ์คํฌ๋ฆฝํธ ๋ณดํธ ์ธํ๋ผ ์ฌ์ธต ๋ถ์
ํ๋ ๋์งํธ ํ๊ฒฝ์์ ์๋ฐ์คํฌ๋ฆฝํธ๋ ์ฌ์ฉ์ ๊ฒฝํ์ ๋ช ์ค์๋ถํ ์์ง์ ๋๋ค. ๋์ ์ธ ์ด์ปค๋จธ์ค ์ฌ์ดํธ์ ์ ๊ตํ ๊ธ์ต ํฌํธ๋ถํฐ ์ํธ์์ฉ์ ์ธ ๋ฏธ๋์ด ํ๋ซํผ๊ณผ ๋ณต์กํ ๋จ์ผ ํ์ด์ง ์ ํ๋ฆฌ์ผ์ด์ (SPA)์ ์ด๋ฅด๊ธฐ๊น์ง ๋ชจ๋ ๊ฒ์ ๊ตฌ๋ํฉ๋๋ค. ๊ทธ ์ญํ ์ด ํ์ฅ๋จ์ ๋ฐ๋ผ ๊ณต๊ฒฉ ํ๋ฉด๋ ๋์ด์ก์ต๋๋ค. ์ฌ์ฉ์ ๋ธ๋ผ์ฐ์ ์ ํด๋ผ์ด์ธํธ ์ธก์์ ์คํ๋๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ณธ์ง์ ์ฝ๋๊ฐ ์ ์ฌ์ ์ผ๋ก ์ ๋์ ์ธ ํ๊ฒฝ์ ์ง์ ์ ๋ฌ๋๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ๋ฐ๋ก ์ด ์ง์ ์์ ์ ํต์ ์ธ ๋ณด์ ๊ฒฝ๊ณ๊ฐ ๋ฌด๋์ง๋๋ค.
์์ญ ๋ ๋์ ๋ณด์ ์ ๋ฌธ๊ฐ๋ค์ ์๋ฒ๋ฅผ ๊ฐํํ๋ ๋ฐ ์ค์ ์ ๋๊ณ ํ๋ก ํธ์๋๋ฅผ ๋จ์ํ ํ๋ ์ ํ ์ด์ ๊ณ์ธต์ผ๋ก ์ทจ๊ธํ์ต๋๋ค. ์ด ๋ชจ๋ธ์ ๋ ์ด์ ์ถฉ๋ถํ์ง ์์ต๋๋ค. ์ค๋๋ ํด๋ผ์ด์ธํธ ์ธก์ ์ฌ์ด๋ฒ ๊ณต๊ฒฉ์ ์ฃผ์ ์ ์ํฐ์ ๋๋ค. ์ง์ ์ฌ์ฐ ๋์ฉ, ์๋ํ๋ ๋จ์ฉ, ๋ฐ์ดํฐ ์คํค๋ฐ, ์ ํ๋ฆฌ์ผ์ด์ ์กฐ์๊ณผ ๊ฐ์ ์ํ์ ๋ธ๋ผ์ฐ์ ๋ด์์ ์ง์ ์คํ๋์ด ์๋ฒ ์ธก ๋ฐฉ์ด๋ฅผ ์์ ํ ์ฐํํฉ๋๋ค. ์ด์ ๋์ํ๊ธฐ ์ํด ์กฐ์ง์ ๋ณด์ ํ์ธ๋ฅผ ๋ฐ์ ์ํค๊ณ ๊ฒฌ๊ณ ํ ์๋ฐ์คํฌ๋ฆฝํธ ๋ณดํธ ์ธํ๋ผ๋ฅผ ๊ตฌ์ถํด์ผ ํฉ๋๋ค.
์ด ๊ฐ์ด๋๋ ๊ฐ๋ฐ์, ๋ณด์ ์ํคํ ํธ, ๊ธฐ์ ๋ฆฌ๋๋ค์๊ฒ ํ๋์ ์ธ ์๋ฐ์คํฌ๋ฆฝํธ ๋ณดํธ ํ๋ ์์ํฌ๊ฐ ๋ฌด์์ ์๋ฐํ๋์ง์ ๋ํ ํฌ๊ด์ ์ธ ์ฒญ์ฌ์ง์ ์ ๊ณตํฉ๋๋ค. ์ฐ๋ฆฌ๋ ๋จ์ํ ์ถ์(minification)๋ฅผ ๋์ด ๊ธ๋ก๋ฒ ์ฌ์ฉ์๋ฅผ ์ํ ํ๋ ฅ์ ์ด๊ณ ์๊ฐ ๋ฐฉ์ด์ ์ธ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค๊ธฐ ์ํด ํ์ํ ๋ค์ธต์ ์ ๋ต์ ํ๊ตฌํ ๊ฒ์ ๋๋ค.
๋ณํํ๋ ๋ณด์ ๊ฒฝ๊ณ: ํด๋ผ์ด์ธํธ ์ธก ๋ณดํธ๊ฐ ํ์์ ์ธ ์ด์
ํด๋ผ์ด์ธํธ ์ธก ๋ณด์์ ๊ทผ๋ณธ์ ์ธ ๊ณผ์ ๋ ํต์ ๋ ฅ ์์ค์ ๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๊ฐ ์๋ฒ๋ฅผ ๋ ๋๋ฉด ์คํ ํ๊ฒฝ์ ๋ํ ์ง์ ์ ์ธ ํต์ ๋ ฅ์ ์๊ฒ ๋ฉ๋๋ค. ๊ณต๊ฒฉ์๋ ์์ ๋กญ๊ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ก์ง์ ๊ฒ์ฌ, ์์ ๋ฐ ๋๋ฒ๊น ํ ์ ์์ต๋๋ค. ์ด๋ฌํ ๋ ธ์ถ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฉํ๋ฒฝ(WAF)๊ณผ ๊ฐ์ ์ ํต์ ์ธ ๋ณด์ ๋๊ตฌ๊ฐ ์ข ์ข ๊ฐ์งํ์ง ๋ชปํ๋ ํน์ ํ๊ณ ์ํํ ์ข ๋ฅ์ ์ํ์ ์ผ๊ธฐํฉ๋๋ค.
ํด๋ผ์ด์ธํธ ์ธก ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ๊ฒจ๋ฅํ ์ฃผ์ ์ํ
- ์ง์ ์ฌ์ฐ(IP) ๋์ฉ ๋ฐ ๋ฆฌ๋ฒ์ค ์์ง๋์ด๋ง: ํ๋ก ํธ์๋ ์ฝ๋์๋ ์ข ์ข ๊ท์คํ ๋น์ฆ๋์ค ๋ก์ง, ๋ ์ ์๊ณ ๋ฆฌ์ฆ, ๊ณ ์ ํ ์ฌ์ฉ์ ์ธํฐํ์ด์ค ํ์ ์ด ํฌํจ๋ฉ๋๋ค. ๋ณดํธ๋์ง ์์ ์๋ฐ์คํฌ๋ฆฝํธ๋ ๊ณต๊ฐ๋ ์ฑ ๊ณผ ๊ฐ์์ ๊ฒฝ์์ฌ๋ ์ ์์ ์ธ ํ์์๊ฐ ์ฝ๊ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ด๋ถ ์๋์ ๋ณต์ฌ, ๋ณต์ ๋๋ ๋ถ์ํ์ฌ ์ทจ์ฝ์ ์ ์ฐพ์ ์ ์์ต๋๋ค.
- ์๋ํ๋ ๋จ์ฉ ๋ฐ ๋ด ๊ณต๊ฒฉ: ์ ๊ตํ ๋ด์ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ์ฌ ์ธ๊ฐ์ ํ๋์ ๋ชจ๋ฐฉํ ์ ์์ต๋๋ค. ์ด๋ ํฌ๋ฆฌ๋ด์ ์คํฐํ, ์ฝํ ์ธ ์คํฌ๋ํ, ํฐ์ผ ์ํ ๊ฑฐ๋, ์ฌ๊ณ ์ฌ์ฌ๊ธฐ์ ์ฌ์ฉ๋ ์ ์์ต๋๋ค. ์ด๋ฌํ ๋ด์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ก์ง์ ๋ชฉํ๋ก ํ๋ฉฐ, ์ข ์ข ํด๋ผ์ด์ธํธ ์์ค์์ ์๋ํ์ฌ ๊ฐ๋จํ CAPTCHA ๋ฐ API ์๋ ์ ํ์ ์ฐํํฉ๋๋ค.
- ๋ฐ์ดํฐ ์ ์ถ ๋ฐ ๋์งํธ ์คํค๋ฐ: ์ด๊ฒ์ ํ๋ฆผ์์ด ๊ฐ์ฅ ํ๊ดด์ ์ธ ํด๋ผ์ด์ธํธ ์ธก ๊ณต๊ฒฉ ์ค ํ๋์ ๋๋ค. ์์๋ ์ 3์ ์คํฌ๋ฆฝํธ๋ ํฌ๋ก์ค ์ฌ์ดํธ ์คํฌ๋ฆฝํ (XSS) ์ทจ์ฝ์ ์ ํตํด ์ฃผ์ ๋ ์ ์ฑ ์ฝ๋๋ ์ ์ฉ์นด๋ ๋ฒํธ ๋ฐ ๊ฐ์ธ ์ ๋ณด์ ๊ฐ์ ๋ฏผ๊ฐํ ์ฌ์ฉ์ ๋ฐ์ดํฐ๋ฅผ ์๋ฒ๋ก ์ ์ก๋๊ธฐ ์ ์ ๊ฒฐ์ ์์์์ ์ง์ ๋นผ๋ผ ์ ์์ต๋๋ค. ์๊ตญํญ๊ณต ๋ฐ ํฐ์ผ๋ง์คํฐ์ ๊ฐ์ ์ฃผ์ ๊ตญ์ ๊ธฐ์ ์ ์ํฅ์ ๋ฏธ์น ์ ๋ช ๋์ ๋ฉ์ด์ง์นดํธ(Magecart) ๊ณต๊ฒฉ์ด ์ด ์ํ์ ๋ํ์ ์ธ ์์ ๋๋ค.
- DOM ๋ณ์กฐ ๋ฐ ๊ด๊ณ ์ฝ์ : ๊ณต๊ฒฉ์๋ ์น ํ์ด์ง์ ๋ฌธ์ ๊ฐ์ฒด ๋ชจ๋ธ(DOM)์ ์กฐ์ํ์ฌ ์ฌ๊ธฐ์ฑ ๊ด๊ณ , ํผ์ฑ ์์ ๋๋ ์คํด์ ์์ง๊ฐ ์๋ ์ ๋ณด๋ฅผ ์ฃผ์ ํ ์ ์์ต๋๋ค. ์ด๋ ๋ธ๋๋ ํํ์ ์์์ํฌ ๋ฟ๋ง ์๋๋ผ ์ฌ์ฉ์์๊ฒ ์ง์ ์ ์ธ ๊ธ์ ์ ์์ค์ ์ด๋ํ ์ ์์ต๋๋ค. ์ ์ฑ ๋ธ๋ผ์ฐ์ ํ์ฅ ํ๋ก๊ทธ๋จ์ ์ด๋ฌํ ์ ํ์ ๊ณต๊ฒฉ์ ๋ํ ์ผ๋ฐ์ ์ธ ๋งค๊ฐ์ฒด์ ๋๋ค.
- ์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง ์กฐ์: ๋ฐํ์์ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์กฐ์ํจ์ผ๋ก์จ ๊ณต๊ฒฉ์๋ ํด๋ผ์ด์ธํธ ์ธก ์ ํจ์ฑ ๊ฒ์ฌ ๊ท์น์ ์ฐํํ๊ณ , ๊ฑฐ๋ ๊ฐ์น๋ฅผ ๋ณ๊ฒฝํ๊ณ , ํ๋ฆฌ๋ฏธ์ ๊ธฐ๋ฅ์ ์ ๊ธ ํด์ ํ๊ฑฐ๋, ๊ฒ์ ๋ฉ์ปค๋์ฆ์ ์กฐ์ํ ์ ์์ต๋๋ค. ์ด๋ ์์ต๊ณผ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฌด๊ฒฐ์ฑ์ ์ง์ ์ ์ธ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
์ด๋ฌํ ์ํ์ ์ดํดํ๋ฉด ์๋์ ์ด๊ณ ์๋ฒ ์ค์ฌ์ ์ธ ๋ณด์ ์ ๋ต์ด ๋ถ์์ ํ๋ค๋ ๊ฒ์ด ๋ถ๋ช ํด์ง๋๋ค. ํด๋ผ์ด์ธํธ ์ธก๊น์ง ํ์ฅ๋๋ ์ ์ ์ ์ด๊ณ ์ฌ์ธต ๋ฐฉ์ด์ ์ธ ์ ๊ทผ ๋ฐฉ์์ ํ๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์์ ์ ๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ ๋ณดํธ ์ธํ๋ผ์ ํต์ฌ ๊ธฐ๋ฅ
๊ฒฌ๊ณ ํ ์๋ฐ์คํฌ๋ฆฝํธ ๋ณดํธ ์ธํ๋ผ๋ ๋จ์ผ ๋๊ตฌ๊ฐ ์๋๋ผ ์ํธ ์ฐ๊ฒฐ๋ ๋ฐฉ์ด ์ฒด๊ณ์ ๋ค์ธต์ ํ๋ ์์ํฌ์ ๋๋ค. ๊ฐ ๊ณ์ธต์ ํน์ ๋ชฉ์ ์ ์ํํ๋ฉฐ, ์ด๋ค์ ๊ฒฐํฉ๋ ํ์ ๊ณต๊ฒฉ์์ ๋ํ ๊ฐ๋ ฅํ ์ฅ๋ฒฝ์ ๋ง๋ญ๋๋ค. ํต์ฌ ๊ธฐ๋ฅ๋ค์ ๋ถ์ํด ๋ณด๊ฒ ์ต๋๋ค.
๊ธฐ๋ฅ 1: ์ฝ๋ ๋๋ ํ ๋ฐ ๋ณํ
์ ์: ๋๋ ํ๋ ์์ค ์ฝ๋๋ฅผ ๊ธฐ๋ฅ์ ์ผ๋ก๋ ๋์ผํ์ง๋ง ์ธ๊ฐ์ด ์ดํดํ๊ณ ๋ถ์ํ๊ธฐ ๋งค์ฐ ์ด๋ ค์ด ๋ฒ์ ์ผ๋ก ๋ณํํ๋ ๊ณผ์ ์ ๋๋ค. ์ด๋ ๋ฆฌ๋ฒ์ค ์์ง๋์ด๋ง ๋ฐ IP ๋์ฉ์ ๋ํ ์ฒซ ๋ฒ์งธ ๋ฐฉ์ด์ ์ ๋๋ค. ์ด๊ฒ์ ์ฑ๋ฅ์ ์ํด ๊ณต๋ฐฑ์ ์ ๊ฑฐํ๊ณ ๋ณ์ ์ด๋ฆ์ ์ค์ด๋ ๋จ์ํ ์ถ์(minification)๋ฅผ ํจ์ฌ ๋ฐ์ด๋์ต๋๋ค.
์ฃผ์ ๊ธฐ์ :
- ์๋ณ์ ์ด๋ฆ ๋ณ๊ฒฝ: ์๋ฏธ ์๋ ๋ณ์ ๋ฐ ํจ์ ์ด๋ฆ(์: `calculateTotalPrice`)์ด ๋ฌด์๋ฏธํ๊ณ ์ข ์ข ์งง๊ฑฐ๋ 16์ง์ ์ด๋ฆ(์: `_0x2fa4`)์ผ๋ก ๋์ฒด๋ฉ๋๋ค.
- ๋ฌธ์์ด ์๋: ์ฝ๋ ๋ด์ ๋ฆฌํฐ๋ด ๋ฌธ์์ด์ด ์ ๊ฑฐ๋๊ณ ์ํธํ๋๊ฑฐ๋ ์ธ์ฝ๋ฉ๋ ํ ์ด๋ธ์ ์ ์ฅ๋ ํ ๋ฐํ์์ ๊ฒ์๋ฉ๋๋ค. ์ด๋ API ์๋ํฌ์ธํธ, ์ค๋ฅ ๋ฉ์์ง ๋๋ ๋น๋ฐ ํค์ ๊ฐ์ ์ค์ํ ์ ๋ณด๋ฅผ ์จ๊น๋๋ค.
- ์ ์ด ํ๋ฆ ํํํ: ์ฝ๋์ ๋ ผ๋ฆฌ์ ํ๋ฆ์ด ์๋์ ์ผ๋ก ๋ณต์กํ๊ฒ ๋ง๋ค์ด์ง๋๋ค. ๊ฐ๋จํ ์ ํ ์์ ์์๊ฐ ๋ฃจํ์ `switch` ๋ฌธ์ ์ฌ์ฉํ๋ ๋ณต์กํ ์ํ ๋จธ์ ์ผ๋ก ์ฌ๊ตฌ์ฑ๋์ด ํ๋ก๊ทธ๋จ์ ์คํ ๊ฒฝ๋ก๋ฅผ ๋ฐ๋ผ๊ฐ๊ธฐ ๋งค์ฐ ์ด๋ ต๊ฒ ๋ง๋ญ๋๋ค.
- ๋ฐ๋ ์ฝ๋ ์ฝ์ : ๊ด๋ จ ์๊ณ ๊ธฐ๋ฅํ์ง ์๋ ์ฝ๋๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ถ๊ฐ๋ฉ๋๋ค. ์ด๋ ๋ก์ง์ ์ดํดํ๋ ค๋ ์ ์ ๋ถ์ ๋๊ตฌ์ ์ธ๊ฐ ๋ถ์๊ฐ๋ฅผ ๋์ฑ ํผ๋์ค๋ฝ๊ฒ ํฉ๋๋ค.
๊ฐ๋ ์์:
๊ฐ๋จํ๊ณ ์ฝ๊ธฐ ์ฌ์ด ํจ์:
function checkPassword(password) {
if (password.length > 8 && password.includes('@')) {
return true;
}
return false;
}
๋๋ ํ ํ, ๊ฐ๋ ์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ด ๋ณด์ผ ์ ์์ต๋๋ค (์ดํด๋ฅผ ๋๊ธฐ ์ํด ๋จ์ํ๋จ):
function _0x1a2b(_0x3c4d) {
var _0x5e6f = ['length', 'includes', '@', '8'];
if (_0x3c4d[_0x5e6f[0]] > window[_0x5e6f[3]] && _0x3c4d[_0x5e6f[1]](_0x5e6f[2])) {
return true;
}
return false;
}
๋ชฉ์ : ๋๋ ํ์ ์ฃผ์ ๋ชฉํ๋ ๊ณต๊ฒฉ์๊ฐ ์ฝ๋๋ฅผ ์ดํดํ๋ ๋ฐ ํ์ํ ์๊ฐ๊ณผ ๋ ธ๋ ฅ์ ํฌ๊ฒ ๋๋ฆฌ๋ ๊ฒ์ ๋๋ค. ๋น ๋ฅธ ๋ถ์์ ๊ธธ๊ณ ์ข์ ์ค๋ฌ์ด ํ๋ก์ ํธ๋ก ๋ง๋ค์ด, ๊ฐ์ฅ ๋จํธํ ์ ์ ์ ์ธํ ๋๋ถ๋ถ์ ๋จ๋ ์ํต๋๋ค.
๊ธฐ๋ฅ 2: ๋ณ์กฐ ๋ฐฉ์ง ๋ฐ ๋ฌด๊ฒฐ์ฑ ๊ฒ์ฌ
์ ์: ๋๋ ํ๊ฐ ์ฝ๋๋ฅผ ์ฝ๊ธฐ ์ด๋ ต๊ฒ ๋ง๋๋ ๋ฐ๋ฉด, ๋ณ์กฐ ๋ฐฉ์ง๋ ์ฝ๋๋ฅผ ์์ ํ๊ธฐ ์ด๋ ต๊ฒ ๋ง๋ญ๋๋ค. ์ด ๊ธฐ๋ฅ์ ์ฝ๋ ์์ฒด ๋ด์ ๋ณด์ ๊ฒ์ฌ๋ฅผ ํฌํจ์์ผ ๋ฐํ์์ ์์ฒด ๋ฌด๊ฒฐ์ฑ์ ๊ฒ์ฆํ ์ ์๋๋ก ํฉ๋๋ค.
์ฃผ์ ๊ธฐ์ :
- ์๊ฐ ๋ฐฉ์ด ์ฝ๋: ์ฃผ์ ๊ธฐ๋ฅ๋ค์ด ์๋ก ์ฝํ ์์ต๋๋ค. ๊ณต๊ฒฉ์๊ฐ ์ฝ๋์ ํ ๋ถ๋ถ์ ์์ ํ๊ฑฐ๋ ์ ๊ฑฐํ๋ฉด, ๊ด๋ จ ์์ด ๋ณด์ด๋ ๋ค๋ฅธ ๋ถ๋ถ์ด ๊นจ์ง๊ฒ ๋ฉ๋๋ค. ์ด๋ ์๋ก ๋ค๋ฅธ ์ฝ๋ ๋ธ๋ก ๊ฐ์ ๋ฏธ๋ฌํ ์ข ์์ฑ์ ๋ง๋ค์ด ๋ฌ์ฑ๋ฉ๋๋ค.
- ์ฒดํฌ์ฌ ๋ฐ ํด์ฑ: ๋ณดํธ ๊ณ์ธต์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฝ๋ ๋ธ๋ก์ ๋ํ ์ํธํ ํด์๋ฅผ ๊ณ์ฐํฉ๋๋ค. ๋ฐํ์์ ์ด ํด์๋ฅผ ๋ค์ ๊ณ์ฐํ์ฌ ์๋ ๊ฐ๊ณผ ๋น๊ตํฉ๋๋ค. ๋ถ์ผ์น๋ ์ฝ๋๊ฐ ๋ณ์กฐ๋์์์ ๋ํ๋ ๋๋ค.
- ํ๊ฒฝ ์ ๊ธ: ์ฝ๋๊ฐ ํน์ ๋๋ฉ์ธ์์๋ง ์คํ๋๋๋ก '์ ๊ธ' ์ ์์ต๋๋ค. ๋ค๋ฅธ ๊ณณ์ ๋ณต์ฌํ์ฌ ํธ์คํ ํ๋ฉด ์คํ์ ๊ฑฐ๋ถํ์ฌ ๊ฐ๋จํ ์ฝ๋ ๋์ฉ ๋ฐ ์ฌ์ฌ์ฉ์ ๋ฐฉ์งํฉ๋๋ค.
๋ชฉ์ : ๊ณต๊ฒฉ์๊ฐ ์ฝ๋๋ฅผ ์์๊ฒ ๋ง๋ค๊ฑฐ๋(๋๋ ํ ํด์ ) ๋ก์ง์ ๋ณ๊ฒฝํ๋ ค๊ณ ์๋ํ๋ฉด(์: ๋ผ์ด์ ์ค ํ์ธ ์ฐํ), ๋ณ์กฐ ๋ฐฉ์ง ๋ฉ์ปค๋์ฆ์ด ์ด ์์ ์ ๊ฐ์งํ๊ณ ๋ฐฉ์ด ์กฐ์น๋ฅผ ํธ๋ฆฌ๊ฑฐํฉ๋๋ค. ์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ธฐ๋ฅ์ ์ค๋จ์ํค๋ ๊ฒ๋ถํฐ ๋ณด์ ๋์๋ณด๋์ ์กฐ์ฉํ ๊ฒฝ๊ณ ๋ฅผ ๋ณด๋ด๋ ๊ฒ๊น์ง ๋ค์ํ ์ ์์ต๋๋ค.
๊ธฐ๋ฅ 3: ๋๋ฒ๊น ๋ฐฉ์ง ๋ฐ ํ๊ฒฝ ๊ฒ์ฌ
์ ์: ๊ณต๊ฒฉ์๋ ์ฝ๋๋ฅผ ์ฝ๊ธฐ๋ง ํ๋ ๊ฒ์ด ์๋๋ผ, ๋๋ฒ๊ฑฐ์์ ์คํํ์ฌ ๋จ๊ณ๋ณ๋ก ๋์์ ๋ถ์ํฉ๋๋ค. ๋๋ฒ๊น ๋ฐฉ์ง ๊ธฐ์ ์ ๋๋ฒ๊น ๋๊ตฌ์ ์กด์ฌ๋ฅผ ๊ฐ์งํ๊ณ ์ด์ ๋ฐ์ํ์ฌ ์ด๋ฌํ ๋์ ๋ถ์์ ๋ถ๊ฐ๋ฅํ๊ฒ ํ๋๋ก ์ค๊ณ๋์์ต๋๋ค.
์ฃผ์ ๊ธฐ์ :
- ๋๋ฒ๊ฑฐ ๊ฐ์ง: ์ฝ๋๋ ์ฃผ๊ธฐ์ ์ผ๋ก `debugger` ํค์๋๋ฅผ ํ์ธํ๊ฑฐ๋ ํน์ ํจ์์ ์คํ ์๊ฐ์ ์ธก์ ํ ์ ์์ต๋๋ค. ๋๋ฒ๊ฑฐ์ ์กด์ฌ๋ ์คํ ์๋๋ฅผ ํฌ๊ฒ ์ ํ์ํค๋ฉฐ, ์ฝ๋๋ ์ด๋ฅผ ๊ฐ์งํ ์ ์์ต๋๋ค.
- ๊ฐ๋ฐ์ ๋๊ตฌ ํ์ธ: ์ฝ๋๋ ์ฐฝ ํฌ๊ธฐ๋ ํน์ ๋ธ๋ผ์ฐ์ ๋ด๋ถ ๊ฐ์ฒด๋ฅผ ํ์ธํ์ฌ ๋ธ๋ผ์ฐ์ ๊ฐ๋ฐ์ ๋๊ตฌ๊ฐ ์ด๋ ค ์๋์ง ํ์ธํ ์ ์์ต๋๋ค.
- ์ค๋จ์ ๋ฏธ๋ผ: ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ์ง ํจ์๋ฅผ ํฉ์ด๋์, ๋ง์ฝ ์ค๋จ์ ์ด ์ค์ ๋๋ฉด ๋ฐฉ์ด ๋ฐ์์ ์ ๋ฐํ๋๋ก ํ ์ ์์ต๋๋ค.
๋ชฉ์ : ๋๋ฒ๊น ๋ฐฉ์ง๋ ๊ณต๊ฒฉ์๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐํ์ ์ํ๋ฅผ ๊ด์ฐฐํ๊ณ , ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ฒ์ฌํ๋ฉฐ, ๋๋ ํ๋ ๋ฐ์ดํฐ๊ฐ ์ด๋ป๊ฒ ํ๋ฆฌ๋์ง ์ดํดํ๋ ๊ฒ์ ๋ง์ต๋๋ค. ๋๋ฒ๊ฑฐ๋ฅผ ๋ฌด๋ ฅํํจ์ผ๋ก์จ ๊ณต๊ฒฉ์๋ฅผ ํจ์ฌ ๋ ์ด๋ ค์ด ์ ์ ๋ถ์ ์์ ์ผ๋ก ๋๋๋ ค ๋ณด๋ ๋๋ค.
๊ธฐ๋ฅ 4: DOM ๋ณดํธ
์ ์: ์ด ๊ธฐ๋ฅ์ ์ฌ์ฉ์์๊ฒ ๋ ๋๋ง๋ ๋ ์น ํ์ด์ง์ ๋ฌด๊ฒฐ์ฑ์ ๋ณดํธํ๋ ๋ฐ ์ค์ ์ ๋ก๋๋ค. DOM ๋ณ์กฐ๋ ํผ์ฑ ์์ ์ฃผ์ , ๋ฐ์ดํฐ ์คํค๋ฐ ๋ฐ ์น์ฌ์ดํธ ํผ์์ ์ํ ์ผ๋ฐ์ ์ธ ๋งค๊ฐ์ฒด์ ๋๋ค.
์ฃผ์ ๊ธฐ์ :
- DOM ๋ชจ๋ํฐ๋ง: `MutationObserver`์ ๊ฐ์ ๋ธ๋ผ์ฐ์ API๋ฅผ ์ฌ์ฉํ์ฌ, ํ๋ ์์ํฌ๋ ์๋ก์ด ์คํฌ๋ฆฝํธ, iframe ๋๋ ์ ๋ ฅ ํ๋ ์ถ๊ฐ์ ๊ฐ์ ๋ฌด๋จ ๋ณ๊ฒฝ ์ฌํญ์ ๋ํด ์ค์๊ฐ์ผ๋ก DOM์ ๋ชจ๋ํฐ๋งํ ์ ์์ต๋๋ค.
- ์ด๋ฒคํธ ๋ฆฌ์ค๋ ๋ฌด๊ฒฐ์ฑ: ํ๋ ์์ํฌ๋ ์ ์ฑ ์คํฌ๋ฆฝํธ๊ฐ ์ฌ์ฉ์ ์ ๋ ฅ์ ์บก์ฒํ๊ธฐ ์ํด ์๋ก์ด ์ด๋ฒคํธ ๋ฆฌ์ค๋(์: ์ํธ ํ๋์ `keydown` ๋ฆฌ์ค๋)๋ฅผ ์ฒจ๋ถํ ์ ์๋๋ก ๋ณด์ฅํฉ๋๋ค.
- ์์ ๋ณดํธ: ๊ฒฐ์ ์์์ด๋ ๋ก๊ทธ์ธ ๋ฒํผ๊ณผ ๊ฐ์ ์ค์ํ ์์๋ '๋ณดํธ'๋ ์ ์์ผ๋ฉฐ, ๋ชจ๋ ์์ ์๋๋ ์ฆ๊ฐ์ ์ธ ๊ฒฝ๊ณ ์ ์๋ต์ ํธ๋ฆฌ๊ฑฐํฉ๋๋ค.
๋ชฉ์ : DOM ๋ณดํธ๋ ๋ฉ์ด์ง์นดํธ ์คํ์ผ์ ๋ฐ์ดํฐ ์คํค๋ฐ์ ๋ฐฉ์งํ๊ณ ์ฌ์ฉ์๊ฐ ์ ์ฑ ์ค๋ฒ๋ ์ด๋ ์ฃผ์ ๋ ์ฝํ ์ธ ์์ด ์๋๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณด๊ณ ์ํธ์์ฉํ๋๋ก ๋ณด์ฅํ๋ ๋ฐ ์ค์ํฉ๋๋ค. ์ด๋ ์ฌ์ฉ์ ์ธํฐํ์ด์ค์ ๋ฌด๊ฒฐ์ฑ์ ๋ณด์กดํ๊ณ ์ธ์ ์์ค ๊ณต๊ฒฉ์ผ๋ก๋ถํฐ ๋ณดํธํฉ๋๋ค.
๊ธฐ๋ฅ 5: ์ค์๊ฐ ์ํ ํ์ง ๋ฐ ๋ณด๊ณ
์ ์: ๊ฐ์์ฑ ์๋ ๋ณดํธ๋ ๋ถ์์ ํฉ๋๋ค. ์ด ๋ง์ง๋ง ๊ธฐ๋ฅ์ ํด๋ผ์ด์ธํธ ์ธก์์ ์๊ฒฉ ์ธก์ ๋ฐ์ดํฐ๋ฅผ ์์งํ์ฌ ์ค์ ๋ณด์ ๋์๋ณด๋๋ก ๋ณด๋ด๋ ๊ฒ์ ํฌํจํฉ๋๋ค. ์ด๋ ๋ชจ๋ ์ฌ์ฉ์์ ๋ธ๋ผ์ฐ์ ๋ฅผ ๋ณด์ ์ผ์๋ก ๋ฐ๊ฟ๋๋ค.
๋ณด๊ณ ๋์:
- ๋ณ์กฐ ์ด๋ฒคํธ: ์ฝ๋ ๋ฌด๊ฒฐ์ฑ ๊ฒ์ฌ๊ฐ ์คํจํ ๋์ ๊ฒฝ๊ณ .
- ๋๋ฒ๊น ์๋: ๋๋ฒ๊น ๋ฐฉ์ง ๋ฉ์ปค๋์ฆ์ด ํธ๋ฆฌ๊ฑฐ๋ ๋์ ์๋ฆผ.
- ์ ์ฑ ์ฃผ์ : ๋ฌด๋จ DOM ์์ ๋๋ ์คํฌ๋ฆฝํธ ์คํ ๋ณด๊ณ .
- ๋ด ์๋ช : ๋น์ธ๊ฐ์ ์ธ ํ๋(์: ๋น์ ์์ ์ผ๋ก ๋น ๋ฅธ ์์ ์ ์ถ)์ ๋ณด์ด๋ ํด๋ผ์ด์ธํธ์ ๋ํ ๋ฐ์ดํฐ.
- ์ง๋ฆฌ์ ๋ฐ ๋คํธ์ํฌ ๋ฐ์ดํฐ: ๊ณต๊ฒฉ์ด ์ด๋์์ ์์๋์๋์ง์ ๋ํ ์ํฉ ์ ๋ณด.
๋ชฉ์ : ์ด ์ค์๊ฐ ํผ๋๋ฐฑ ๋ฃจํ๋ ๋งค์ฐ ์ค์ํฉ๋๋ค. ๋ณด์์ ์๋์ ๋ฐฉ์ด์์ ๋ฅ๋์ ์ ๋ณด ์์ง ์์ ์ผ๋ก ์ ํํฉ๋๋ค. ๋ณด์ํ์ ์ํ์ด ๋ฐ์ํ๋ ์ฆ์ ํ์ธํ๊ณ , ๊ณต๊ฒฉ ํจํด์ ๋ถ์ํ๋ฉฐ, ์์๋ ์ 3์ ์คํฌ๋ฆฝํธ๋ฅผ ์๋ณํ๊ณ , ์ฌ์ฉ์๊ฐ ๋ฌธ์ ๋ฅผ ๋ณด๊ณ ํ ๋๊น์ง ๊ธฐ๋ค๋ฆด ํ์ ์์ด ๋์์ฑ ์ ๋ฐฐํฌํ ์ ์์ต๋๋ค.
ํ๋ ์์ํฌ ๊ตฌํ: ์ ๋ต์ ์ ๊ทผ
๊ธฐ๋ฅ๋ค์ ์๋ ๊ฒ๊ณผ ์ด๋ฅผ ๊ฐ๋ฐ ๋ฐ ๋ฐฐํฌ ์๋ช ์ฃผ๊ธฐ์ ์ฑ๊ณต์ ์ผ๋ก ํตํฉํ๋ ๊ฒ์ ๋ณ๊ฐ์ ๋ฌธ์ ์ ๋๋ค. ๋ณด์, ์ฑ๋ฅ ๋ฐ ์ ์ง ๊ด๋ฆฌ ๊ฐ๋ฅ์ฑ์ ๊ท ํ์ ๋ง์ถ๊ธฐ ์ํ ์ ๋ต์ ์ ๊ทผ์ด ํ์ํฉ๋๋ค.
๊ตฌ๋งค vs. ๊ตฌ์ถ: ์ค์ํ ๊ฒฐ์
์ฒซ ๋ฒ์งธ ์ฃผ์ ๊ฒฐ์ ์ ์ด๋ฌํ ๊ธฐ๋ฅ์ ์์ฒด์ ์ผ๋ก ๊ตฌ์ถํ ๊ฒ์ธ์ง ์๋๋ฉด ์ ๋ฌธ ์์ฉ ๊ณต๊ธ์ ์ฒด์ ํ๋ ฅํ ๊ฒ์ธ์ง์ ๋๋ค.
- ์์ฒด ๊ตฌ์ถ: ์ด ์ ๊ทผ ๋ฐฉ์์ ์ต๋์ ํต์ ๋ ฅ์ ์ ๊ณตํ์ง๋ง ์๋นํ ์ด๋ ค์์ด ๋ฐ๋ฆ ๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ ๋ด๋ถ, ์ปดํ์ผ๋ฌ ์ด๋ก ๋ฐ ๋์์์ด ์งํํ๋ ์ํ ํ๊ฒฝ์ ๋ํ ๊น์ ์ ๋ฌธ ์ง์์ด ํ์ํฉ๋๋ค. ๋ํ ์ง์์ ์ธ ๋ ธ๋ ฅ์ด ํ์ํฉ๋๋ค. ๊ณต๊ฒฉ์๊ฐ ์๋ก์ด ๊ธฐ์ ์ ๊ฐ๋ฐํจ์ ๋ฐ๋ผ ๋ฐฉ์ด ์ฒด๊ณ๋ ์ ๋ฐ์ดํธ๋์ด์ผ ํฉ๋๋ค. ์ง์์ ์ธ ์ ์ง ๋ณด์ ๋ฐ R&D ๋น์ฉ์ด ์๋นํ ์ ์์ต๋๋ค.
- ๊ณต๊ธ์ ์ฒด์ ํ๋ ฅ: ์์ฉ ์๋ฃจ์ ์ ๋น๋ ํ์ดํ๋ผ์ธ์ ์ ์ํ๊ฒ ํตํฉํ ์ ์๋ ์ ๋ฌธ๊ฐ ์์ค์ ๋ณดํธ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด๋ฌํ ๊ณต๊ธ์ ์ฒด๋ ๊ณต๊ฒฉ์๋ณด๋ค ์์ ๋๊ฐ๊ธฐ ์ํด ์์์ ํฌ์ ํ๋ฉฐ, ๋คํ์ฑ ๋ณดํธ(๋น๋๋ง๋ค ๋ฐฉ์ด ์ฒด๊ณ๊ฐ ๋ณ๊ฒฝ๋จ) ๋ฐ ์ ๊ตํ ์ํ ๋์๋ณด๋์ ๊ฐ์ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ๋ผ์ด์ ์ค ๋น์ฉ์ด ์์ง๋ง, ๋ด๋ถ์ ์ผ๋ก ์ ์ฌํ ์๋ฃจ์ ์ ๊ตฌ์ถํ๊ณ ์ ์ง ๊ด๋ฆฌํ๋ ๊ฒ๊ณผ ๋น๊ตํ ๋ ์ข ์ข ์ด ์์ ๋น์ฉ(TCO)์ด ๋ ๋ฎ์ต๋๋ค.
๋๋ถ๋ถ์ ์กฐ์ง์๊ฒ ์์ฉ ์๋ฃจ์ ์ ๋ ์ค์ฉ์ ์ด๊ณ ํจ๊ณผ์ ์ธ ์ ํ์ด๋ฉฐ, ๊ฐ๋ฐํ์ด ํต์ฌ ์ ํ ๊ธฐ๋ฅ์ ์ง์คํ๋ฉด์ ๋ณด์์ ์ ๋ฌธ๊ฐ์๊ฒ ์์กดํ ์ ์๊ฒ ํด์ค๋๋ค.
์ํํธ์จ์ด ๊ฐ๋ฐ ์๋ช ์ฃผ๊ธฐ(SDLC)์์ ํตํฉ
ํด๋ผ์ด์ธํธ ์ธก ๋ณดํธ๋ ๋์ค์ ๊ณ ๋ คํ ์ฌํญ์ด ๋์ด์๋ ์ ๋ฉ๋๋ค. CI/CD(์ง์์ ํตํฉ/์ง์์ ๋ฐฐํฌ) ํ์ดํ๋ผ์ธ์ ์ํํ๊ฒ ํตํฉ๋์ด์ผ ํฉ๋๋ค.
- ์์ค: ๊ฐ๋ฐ์๋ ํ์ค์ ์ด๊ณ ์ฝ๊ธฐ ์ฌ์ด ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ์์ฑํฉ๋๋ค.
- ๋น๋: ์๋ํ๋ ๋น๋ ํ๋ก์ธ์ค(์: Webpack, Jenkins ์ฌ์ฉ) ์ค์ ์๋ณธ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ์ด ๋ณดํธ ๋๊ตฌ/์๋น์ค๋ก ์ ๋ฌ๋ฉ๋๋ค.
- ๋ณดํธ: ์ด ๋๊ตฌ๋ ๊ตฌ์ฑ๋ ๋๋ ํ, ๋ณ์กฐ ๋ฐฉ์ง ๋ฐ ๊ธฐํ ๋ฐฉ์ด ๊ณ์ธต์ ์ ์ฉํฉ๋๋ค. ์ด ๋จ๊ณ์์ ๋ณดํธ๋ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ์ด ์์ฑ๋ฉ๋๋ค.
- ๋ฐฐํฌ: ๋ณดํธ๋๊ณ ํ๋ก๋์ ์ค๋น๊ฐ ๋ ํ์ผ์ด ์น ์๋ฒ๋ CDN์ ๋ฐฐํฌ๋ฉ๋๋ค.
์ฃผ์ ๊ณ ๋ ค ์ฌํญ: ์ฑ๋ฅ. ๋ชจ๋ ๋ณด์ ๊ณ์ธต์ ์ฝ๊ฐ์ ์ค๋ฒํค๋๋ฅผ ์ถ๊ฐํฉ๋๋ค. ๋ณดํธ ํ๋ ์์ํฌ์ ์ฑ๋ฅ ์ํฅ์ ํ ์คํธํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์ต์ ์๋ฃจ์ ์ ๋ก๋ ์๊ฐ ๋ฐ ๋ฐํ์ ์ฑ๋ฅ์ ๋ฏธ์น๋ ์ํฅ์ ์ต์ํํ๋๋ก ๊ณ ๋๋ก ์ต์ ํ๋์ด ์์ง๋ง, ์ด๋ ํญ์ ํน์ ํ๊ฒฝ์์ ๊ฒ์ฆ๋์ด์ผ ํฉ๋๋ค.
๋คํ์ฑ ๋ฐ ๊ณ์ธตํ: ๋ณต์๋ ฅ์ ์ด์
๊ฐ์ฅ ํจ๊ณผ์ ์ธ ์๋ฐ์คํฌ๋ฆฝํธ ๋ณดํธ ํ๋ ์์ํฌ๋ ๋ ๊ฐ์ง ํต์ฌ ์์น์ ์ฑํํฉ๋๋ค:
- ๊ณ์ธตํ(์ฌ์ธต ๋ฐฉ์ด): ๋๋ ํ์ ๊ฐ์ ๋จ์ผ ๊ธฐ์ ์๋ง ์์กดํ๋ ๊ฒ์ ์ทจ์ฝํฉ๋๋ค. ๋จํธํ ๊ณต๊ฒฉ์๋ ๊ฒฐ๊ตญ ๊ทธ๊ฒ์ ๊ฒฉํํ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ์ฌ๋ฌ ๊ฐ์ ์๋ก ๋ค๋ฅธ ๋ฐฉ์ด(๋๋ ํ + ๋ณ์กฐ ๋ฐฉ์ง + ๋๋ฒ๊น ๋ฐฉ์ง)๋ฅผ ๊ณ์ธตํํ๋ฉด ๊ณต๊ฒฉ์๋ ๊ฐ ๋ฐฉ์ด๋ฅผ ์์๋๋ก ๊ฒฉํํด์ผ ํฉ๋๋ค. ์ด๋ ๊ณต๊ฒฉ์ ๋์ด๋์ ๋น์ฉ์ ๊ธฐํ๊ธ์์ ์ผ๋ก ์ฆ๊ฐ์ํต๋๋ค.
- ๋คํ์ฑ: ๋ณดํธ๊ฐ ์ ์ ์ด๋ผ๋ฉด, ํ ๋ฒ ์ฐํ ๋ฐฉ๋ฒ์ ์์๋ธ ๊ณต๊ฒฉ์๋ ์์ํ ๊ทธ๋ ๊ฒ ํ ์ ์์ต๋๋ค. ๋คํ์ฑ ๋ฐฉ์ด ์์ง์ ์ฝ๋์ ์ ์ฉ๋๋ ๋ณดํธ๊ฐ ๋ชจ๋ ๋น๋๋ง๋ค ๋ฌ๋ผ์ง๋๋ก ๋ณด์ฅํฉ๋๋ค. ๋ณ์ ์ด๋ฆ, ํจ์ ๊ตฌ์กฐ ๋ฐ ๋ฌด๊ฒฐ์ฑ ๊ฒ์ฌ๊ฐ ๋ชจ๋ ๋ณ๊ฒฝ๋์ด ์ด์ ์ ๊ฐ๋ฐ๋ ๊ณต๊ฒฉ ์คํฌ๋ฆฝํธ๋ฅผ ์ธ๋ชจ์๊ฒ ๋ง๋ญ๋๋ค. ์ด๋ ๊ณต๊ฒฉ์๊ฐ ์ ๋ฐ์ดํธ๋ฅผ ๋ฐฐํฌํ ๋๋ง๋ค ์ฒ์๋ถํฐ ๋ค์ ์์ํ๋๋ก ๊ฐ์ํฉ๋๋ค.
์ฝ๋๋ฅผ ๋์ด์: ๋ณด์์ ์ธ ๋ณด์ ์ ์ด
์๋ฐ์คํฌ๋ฆฝํธ ๋ณดํธ ์ธํ๋ผ๋ ํ๋ ๋ณด์ ์ ๋ต์ ๊ฐ๋ ฅํ๊ณ ํ์ํ ๊ตฌ์ฑ ์์์ด์ง๋ง, ๋จ๋ ์ผ๋ก ์๋ํ์ง๋ ์์ต๋๋ค. ๋ค๋ฅธ ํ์ค ์น ๋ณด์ ๋ชจ๋ฒ ์ฌ๋ก๋ก ๋ณด์๋์ด์ผ ํฉ๋๋ค.
- ์ฝํ ์ธ ๋ณด์ ์ ์ฑ (CSP): CSP๋ ๋ธ๋ผ์ฐ์ ์ ์ ๋ขฐํ ์ ์๋ ์ฝํ ์ธ ์์ค(์คํฌ๋ฆฝํธ, ์คํ์ผ, ์ด๋ฏธ์ง)๊ฐ ๋ฌด์์ธ์ง ์๋ ค์ฃผ๋ ๋ธ๋ผ์ฐ์ ์์ค์ ์ง์นจ์ ๋๋ค. ๋ธ๋ผ์ฐ์ ๊ฐ ์น์ธ๋์ง ์์ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๋ ๊ฒ์ ๋ฐฉ์งํ์ฌ ๋ค์ํ ํํ์ XSS ๋ฐ ๋ฐ์ดํฐ ์ฃผ์ ๊ณต๊ฒฉ์ ๋ํ ๊ฐ๋ ฅํ ๋ฐฉ์ด๋ฅผ ์ ๊ณตํฉ๋๋ค. CSP์ ์๋ฐ์คํฌ๋ฆฝํธ ๋ณดํธ๋ ํจ๊ป ์๋ํฉ๋๋ค: CSP๋ ์น์ธ๋์ง ์์ ์คํฌ๋ฆฝํธ๊ฐ ์คํ๋๋ ๊ฒ์ ๋ฐฉ์งํ๊ณ , ์๋ฐ์คํฌ๋ฆฝํธ ๋ณดํธ๋ ์น์ธ๋ ์คํฌ๋ฆฝํธ๊ฐ ๋ณ์กฐ๋์ง ์๋๋ก ๋ณด์ฅํฉ๋๋ค.
- ํ์ ๋ฆฌ์์ค ๋ฌด๊ฒฐ์ฑ(SRI): ์ 3์ CDN์์ ์คํฌ๋ฆฝํธ๋ฅผ ๋ก๋ํ ๋, SRI๋ ํ์ผ์ ํด์๋ฅผ ์ ๊ณตํ ์ ์๊ฒ ํด์ค๋๋ค. ๋ธ๋ผ์ฐ์ ๋ ์คํฌ๋ฆฝํธ์ ํด์๊ฐ ์ ๊ณต๋ ํด์์ ์ผ์นํ๋ ๊ฒฝ์ฐ์๋ง ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ์ฌ, ํ์ผ์ด ์ ์ก ์ค์ ์์ ๋๊ฑฐ๋ CDN์์ ์์๋์ง ์์์์ ๋ณด์ฅํฉ๋๋ค.
- ์น ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฉํ๋ฒฝ(WAF): WAF๋ ์ ์ฑ ์๋ฒ ์ธก ์์ฒญ์ ํํฐ๋งํ๊ณ , SQL ์ฝ์ ์ ๋ฐฉ์งํ๋ฉฐ, DDoS ๊ณต๊ฒฉ์ ์ํํ๋ ๋ฐ ๊ณ์ํด์ ํ์์ ์ ๋๋ค. WAF๋ ์๋ฒ๋ฅผ ๋ณดํธํ๊ณ , ์๋ฐ์คํฌ๋ฆฝํธ ํ๋ ์์ํฌ๋ ํด๋ผ์ด์ธํธ๋ฅผ ๋ณดํธํฉ๋๋ค.
- ์์ ํ API ์ค๊ณ: API์ ๋ํ ๊ฐ๋ ฅํ ์ธ์ฆ, ๊ถํ ๋ถ์ฌ ๋ฐ ์๋ ์ ํ์ ๋ด๊ณผ ์ ์์ ์ธ ํด๋ผ์ด์ธํธ๊ฐ ๋ฐฑ์๋ ์๋น์ค๋ฅผ ์ง์ ๋จ์ฉํ๋ ๊ฒ์ ๋ฐฉ์งํ๋ ๋ฐ ์ค์ํฉ๋๋ค.
๊ฒฐ๋ก : ์๋ก์ด ๊ฐ์ฒ์ง ํ๋ณด
์น์ ์งํํ๊ณ , ์น์ ๋ณดํธํ๋ ์ฐ๋ฆฌ์ ์ ๊ทผ ๋ฐฉ์๋ ์งํํด์ผ ํฉ๋๋ค. ํด๋ผ์ด์ธํธ ์ธก์ ๋ ์ด์ ๋จ์ํ ํ๋ ์ ํ ์ด์ ๊ณ์ธต์ด ์๋๋ผ, ๊ณต๊ฒฉ์๋ค์๊ฒ ์๋กญ๊ณ ๋น์ฅํ ๋ ์ ๋ํํ๋ ๋ณต์กํ๊ณ ๋ก์ง์ผ๋ก ๊ฐ๋ ์ฐฌ ํ๊ฒฝ์ ๋๋ค. ํด๋ผ์ด์ธํธ ์ธก ๋ณด์์ ๋ฌด์ํ๋ ๊ฒ์ ๋น์ฆ๋์ค์ ์ ๋ฌธ์ ์ ๊ทธ์ง ์์ ์ฑ๋ก ๋๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ ๋ณดํธ ์ธํ๋ผ๋ฅผ ๊ตฌ์ถํ๋ ๊ฒ์ ์์ต, ๋ฐ์ดํฐ ์์ง ๋๋ ๋ธ๋๋ ํํ์ ์ํด ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์์กดํ๋ ๋ชจ๋ ์กฐ์ง์๊ฒ ์ ๋ต์ ํ์ ๊ณผ์ ์ ๋๋ค. ๋๋ ํ, ๋ณ์กฐ ๋ฐฉ์ง, ๋๋ฒ๊น ๋ฐฉ์ง, DOM ๋ณดํธ ๋ฐ ์ค์๊ฐ ์ํ ๋ชจ๋ํฐ๋ง์ ๋ค์ธต์ ํ๋ ์์ํฌ๋ฅผ ๊ตฌํํจ์ผ๋ก์จ ์ทจ์ฝํ ๋์์ ํ๋ ฅ์ ์ด๊ณ ์๊ฐ ๋ฐฉ์ด์ ์ธ ์์ฐ์ผ๋ก ๋ณํํ ์ ์์ต๋๋ค.
๋ชฉํ๋ ์ด๋ก ์ ์ธ "๊นจ์ง์ง ์์"์ ๋ฌ์ฑํ๋ ๊ฒ์ด ์๋๋ผ ๋ณต์๋ ฅ์ ๊ตฌ์ถํ๋ ๊ฒ์ ๋๋ค. ์ด๋ ๊ณต๊ฒฉ์์ ๋น์ฉ, ์๊ฐ ๋ฐ ๋ณต์ก์ฑ์ ๊ทน์ ์ผ๋ก ์ฆ๊ฐ์์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋งค๋ ฅ์ ์ด์ง ์์ ๋์์ผ๋ก ๋ง๋ค๊ณ , ๊ณต๊ฒฉ์ด ๋ฐ์ํ์ ๋ ๋จํธํ๊ฒ ๋์ํ ์ ์๋ ๊ฐ์์ฑ์ ์ ๊ณตํ๋ ๊ฒ์ ๋๋ค. ์ค๋ ํด๋ผ์ด์ธํธ ์ธก ๋ณด์ ํ์ธ๋ฅผ ๊ฐ์ฌํ๊ณ ์น ์ ํ๋ฆฌ์ผ์ด์ ๋ณด์์ ์๋ก์ด ๊ฐ์ฒ์ง๋ฅผ ํ๋ณดํ๊ธฐ ์ํ ์ฒซ ๊ฑธ์์ ๋ด๋์ผ์ญ์์ค.